

diode_connections.lvs is the only place where nwell is used for the connection to the devices.
Everywhere else, i.e. moscap_extraction.lvs/mos_extraction.lvs/mos_sab_extraction.lvs/res_extraction.lvs, nwell_con is used.
If you take a look at general_derivations.lvs you can see that nwell_con is defined as:
nwell_con = nwell.not(res_mk)
I think this is so that nwell resistors are correctly extracted. They are extracted as:
# NWELL
logger.info('Extracting NWELL device')
extract_devices(resistor_with_bulk('nwell', 1000, BResistor), { 'R' => nwell_res, 'C' => nwell_con, 'W' => sub })
You can find a description about the extractor here: https://www.klayout.de/doc/manual/lvs_device_extractors.html
Taking a look at the connectivity setup in general_connections.lvs, only nwell_con is connected to ntap:
# Inter-layer
connect(lvpwell_con, ptap)
connect(lvpwell_con, ptap_dw)
connect(dnwell, ntap_dw)
connect(nwell_con, ntap)
connect(ptap, contact)
...
That's the reason why you get anonymous pins with just nwell.
Long story short, I agree that nwell_con should be used :)

